<?php
class ClienteBSN extends GenericBSN {

	function __construct() {
		$this->dao = new ClienteDAO();		
	}

	public function consultar($vars) {
		$this->preencher($vars);
		$this->Records = $this->dao->consultar($this->where, $this->params, $this->order . $this->limit);
		$this->Result  = "OK";
		$this->TotalRecordCount = $this->dao->contarRegistros($this->where, $this->params);
	}
	
	public function consultarPK($vars) {
		$this->Records = $this->dao->consultarPK($vars['id']);
		$this->Result = "OK";
	}
	
	public function consultarNomeOuCod($vars) {
		$this->Records = $this->dao->consultarNomeOuCod($vars['valor']);
		$this->Result  = "OK";
	}
	
	public function comboModelosDoc() {
		$dao = new Det_Modelo_DocDAO();
		$recs = $dao->consultarModelosDoc();
		foreach($recs as $rec) {
			$combo[] = array("DisplayText" => $rec['nome'],
							 "Value"       => $rec['id']);
		}
		$this->Records = $recs;
		$this->Options = $combo;
		$this->Result = "OK";
	}
	
	public function comboCamposDoc($vars) {
		$dao = new Det_Modelo_DocDAO();
		$recs = $dao->consultarModeloDoc($vars['modeloDoc']);
		foreach($recs as $rec) {
			$combo[] = array("DisplayText" => $rec['nome_info'],
							 "Value"       => $rec['id']);
		}
		$this->Records = $recs;
		$this->Options = $combo;
		$this->Result = "OK";
	}
	
	public function consultarDocs($vars) {
		$dao = new Doc_ClienteDAO();
		$this->Records = $dao->consultarCliente($vars['cliente']);
		$this->Result = "OK";
	}

	public function inserir($vars) {
		$registro['codigo'] 	 = $vars['codigo'];
		$registro['nome'] 		 = $vars['nome'];
		$registro['razaosocial'] = $vars['razaosocial'];
		$registro['logradouro']  = $vars['logradouro'];
		$registro['num'] 		 = $vars['num'];
		$registro['compl'] 		 = $vars['compl'];
		$registro['bairro'] 	 = $vars['bairro'];
		$registro['cidade'] 	 = $vars['cidade'];
		$registro['uf'] 		 = $vars['uf'];
		$registro['cep'] 		 = str_replace('-', '', str_replace('.', '', $vars['cep']));
		$registro['telefone'] 	 = $vars['telefone'];
		$registro['fax'] 		 = $vars['fax'];
		$registro['mail'] 		 = $vars['mail'];
		$registro['contato'] 	 = $vars['contato'];
		$registro['fornecedor']	 = (isset($vars['fornecedor']) && ($vars['fornecedor'] == 's')) ? 1 : 0;
		$this->Record = $this->dao->inserir($registro);
		if (is_null($this->Record)) {
			$this->Result  = "ERROR";
			$this->Message = "Erro ao tentar inserir";
		} else {
			$this->Result  = "OK";
		}
	}
	
	public function alterar($vars) {
		$registro['id'] 	 	 = $vars['id'];
		$registro['codigo'] 	 = $vars['codigo'];
		$registro['nome'] 		 = $vars['nome'];
		$registro['razaosocial'] = $vars['razaosocial'];
		$registro['logradouro']  = $vars['logradouro'];
		$registro['num'] 		 = $vars['num'];
		$registro['compl'] 		 = $vars['compl'];
		$registro['bairro'] 	 = $vars['bairro'];
		$registro['cidade'] 	 = $vars['cidade'];
		$registro['uf'] 		 = $vars['uf'];
		$registro['cep'] 		 = str_replace('-', '', str_replace('.', '', $vars['cep']));
		$registro['telefone'] 	 = $vars['telefone'];
		$registro['fax'] 		 = $vars['fax'];
		$registro['mail'] 		 = $vars['mail'];
		$registro['contato'] 	 = $vars['contato'];
		$registro['fornecedor']	 = (isset($vars['fornecedor']) && ($vars['fornecedor'] == 's')) ? 1 : 0;
		if (is_null($this->dao->alterar($registro))) {
			$this->Result  = "ERROR";
			$this->Message = "Erro ao tentar alterar";
		} else {
			$this->Result  = "OK";
		}
	}
	
	public function excluir($registro) {
		try {
			$res = $this->dao->excluir($registro['id']);
			$this->Result  = "OK";
		} catch (Exception $e) {
			$this->Result  = "ERROR";
			$this->Message = "Erro ao tentar excluir: " . $e->getMessage();
		}
	}
	
	public function inserirDoc($vars) {
		try {
			$reg['cliente'] = $vars['cliente'];
			$reg['det_modelo_doc'] = $vars['campo'];
			$reg['valor'] = $vars['valor'];
			$dao = new Doc_ClienteDAO();
			$reg = $dao->inserir($reg);
			$dao = new Det_Modelo_DocDAO();
			$det = $dao->consultarPK($reg['det_modelo_doc']);
			$reg['nome'] = $det[0]['nome_modelo_doc'];
			$reg['nome_info'] = $det[0]['nome_info'];
			$this->Record = $reg;
			$this->Result = "OK"; 
		} catch (Exception $e) {
			$this->Result  = "ERROR";
			$this->Message = "Erro ao inserir documento: " . $e->getMessage();
		}
	}
	
	public function alterarDoc($vars) {
		try {
			$reg['cliente'] = $vars['cliente'];
			$reg['det_modelo_doc'] = $vars['campo'];
			$reg['valor'] = $vars['valor'];
			$reg['id'] = $vars['id'];
			$dao = new Doc_ClienteDAO();
			$dao->alterar($reg);
			$dao = new Det_Modelo_DocDAO();
			$det = $dao->consultarPK($reg['det_modelo_doc']);
			$reg['nome'] = $det[0]['nome_modelo_doc'];
			$reg['nome_info'] = $det[0]['nome_info'];
			$this->Record = $reg;
			$this->Result = "OK";
		} catch (Exception $e) {
			$this->Result  = "ERROR";
			$this->Message = "Erro ao alterar documento: " . $e->getMessage();
		}
	}
	
	public function excluirDoc($vars) {
		try {
			$dao = new Doc_ClienteDAO();
			$pk['id'] = $vars['id'];
			$dao->excluir($pk);
			$this->Result  = "OK";
		} catch (Exception $e) {
			$this->Result  = "ERROR";
			$this->Message = "Erro ao tentar excluir documento: " . $e->getMessage();
		}
	}
}
?>